<?php
namespace app\index\controller;
//引入系统数据类
use think\Db;
//引入系统控制器类
use think\Controller;
class Index extends Controller
{
    public function index(){  
        var_dump($this->ChangeDb());
        //var_dump($alltime);
    }
    public function ChangeDb($allDay,$FirstDay){
        for($i=1;$i<$allDay;$i++){
            $result=$this->Dbchange($i.'day');
            $this->change($result,$FirstDay+$i-1,$i);
        }
    }
    public function Dbchange($date){
        $result = Db::name('ce')->where('1day','>',0)->select();
        for($i=1;$i<count($result);$i++){
            $result[$i]['员工号']==null?$result[$i]['员工号']=$result[$i-1]['员工号']:null;
            $result[$i]['姓名']==null?$result[$i]['姓名']=$result[$i-1]['姓名']:null;
        }
        return $result;
        //day签到次数判断（奇偶）
        // $result = Db::name('kaoqin')->where('daysix','>',0)->select();
        // $count=1;
        // for($i=1;$i<count($result);$i++){
        //     if($result[$i]['id']==$result[$i-1]['id']){
        //         $count++;
        //     }else{
        //         if($count%2!=1){
        //             for($a=$count;$a>0;$a--){
        //             $this->text($result[$i-$a]);
        //             }
        //         }else{
        //             for($a=$count;$a>1;$a--){
        //                 $this->text($result[$i-$a]);
        //                 }
        //             }
        //            $count=1; 
        //         }
        //     }

        // var_dump($result);
        
        // for($i=0;$i<count($result);$i++){
            //补全空白数据项补全id
        // }
        // var_dump($result);
        // for($i = 0; $i<count($result); $i++) {
        //     if($result[$i]['id'] == null) {
            //判断id值为空
        //         $result[$i]['id'] = $result[$i-1]['id'];
        //         $tmp['num'] = $result[$i]['num'];
        //         Db::table('kaoqin')->where('num',$result[$i]['num'])->update(['id' => $result[$i]['id']]);
        //     }
        // // print_r($result[$i]['id']);
        // }
            //补全空白数据项补全name
        // for($i = 0; $i<count($result); $i++) {
        //     if($result[$i]['name'] == null) {
            //判断name值为空
        //         $result[$i]['name'] = $result[$i-1]['name'];
        //         $tmp['num'] = $result[$i]['num'];
        //         Db::table('kaoqin')->where('num',$result[$i]['num'])->update(['name' => $result[$i]['name']]);

        //     }
        // print_r($result[$i]['name']);
        //}

        // print_r($result[$i]['name']);
    }

    //时间戳
    public function change($result,$thisDay,$i){
        $count=1;
        for($i=1;$i<count($result);$i++){
            if($result[$i]['员工号']==$result[$i-1]['员工号']){
                $count++;
            }else{
                if($count%2!=1){
                    for($a=$count;$a>0;$a--){
                        $this->text($result[$i-$a],$thisDay,$i);
                    }
                }else{
                    for($a=$count;$a>1;$a--){
                        $this->text($result[$i-$a],$thisDay,$i);
                    }
                }
                $count=1; 
            }
        }        
    }
    public function text($result,$thisDay,$i){
        // $date = '20181006';
        // //年月日
        $time = strtotime($thisDay.$result[$i.'day']);
        $data = ['id'=>$result['员工号'],'name'=>$result['姓名'],'time'=>$time];     
        // //插入数据库
        Db::table('example')->insert($data);
        // return null;
    }
    
    //public function 
    /*      单人签到总时长
    **$time 单日零时时间戳
    **$name 查询姓名
    */
    public function ApOday($time,$name){
        $result = Db::table('kaoqin_example')
        ->where('name','=',$name)
        ->select();
        $alltime=0;
        for($i=0;$i<count($result);$i+=2){
            $alltime+=$result[$i+1]['time']-$result[$i]['time'];
        }
        return $alltime;
    }
    /*      单日签到总时长
    **$time 单日零时时间戳
    **return arr name=>time
    */
    public function Otime($time){
        $result = Db::table('kaoqin_example')
        ->where('time','between',[$time,$time+86400+86400+86400+86400+86400+86400])
        ->select();
        $arr = [];
        $alltime=[];
        foreach($result as $key=>$value){
            $arr[$value['name']][] = $value;
        }
        foreach($arr as $key=>$value){
            for($i=0;$i<count($arr[$key]);$i+=2){
                array_key_exists($key,$alltime)?$alltime[$key]+=$arr[$key][$i+1]['time']-$arr[$key][$i]['time']:$alltime[$key]=$arr[$key][$i+1]['time']-$arr[$key][$i]['time'];
            }
        }
        return arsort($alltime);
    }
    public function Alluser(){
        $result = Db::table('kaoqin_example')
        ->column("name");
        return array_unique($result);
    }
    public function ApAday($name,$time){
        $result = Db::table('kaoqin_example')
        ->where('name','=',$name)
        ->column("time");
        $arr=[];$alltime=[];
        for($i=0;$i<count($result) ;$i++){
            $inter=($result[$i]-$time)/86400;
            array_key_exists((int)$inter,$arr)?array_push($arr[(int)$inter],($result[$i]-$time)%86400):$arr[(int)$inter][0]=($result[$i]-$time)%86400;
        }
        foreach($arr as $key=>$value){
            for($i=0;$i<count($arr[$key]);$i+=2){
                array_key_exists($key,$alltime)?$alltime[$key]+=$arr[$key][$i+1]-$arr[$key][$i]:$alltime[$key]=$arr[$key][$i+1]-$arr[$key][$i];
            }
        }
        return $alltime;
    }
    public function Frequency($name,$time){
        $result = Db::table('kaoqin_example')
        ->where('name','=',$name)
        ->column("time");
        $arr=[];$alltime=[];
        for($i=0;$i<count($result) ;$i++){
            $inter=($result[$i]-$time)/86400;
            array_key_exists((int)$inter,$arr)?array_push($arr[(int)$inter],($result[$i]-$time)%86400):$arr[(int)$inter][0]=($result[$i]-$time)%86400;
        }
        foreach($arr as $key=>$value){
            for($i=0;$i<count($arr[$key]);$i+=2){
               $alltime[$key]=count($arr[$key])/2;
            }
        }
        return $alltime;
    }       
}